﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SGC.BL.InformeAuditoria;
using SGC.BE;
using System.Text;

namespace SGC.Web.ModuloCalidad.Mantenimientos
{
    public partial class ConsultarInformeAuditoria : System.Web.UI.Page
    {
        #region MetodosUsuario
        private string ObtenerSolicitudSeleccionada()
        {
            string strInforme = null;
            foreach (DataGridItem fila in dgdInformeAuditoria.Items)
            {
                CheckBox chk = (CheckBox)fila.FindControl("chk_item");
                if (chk.Checked)
                {
                    Label lbl = (Label)fila.FindControl("lblCodigo");
                    strInforme = lbl.Text;
                    break;
                }
            }
            return strInforme;
        }
        private void LimpiarGrilla()
        {
            dgdInformeAuditoria.DataSource = null;
            dgdInformeAuditoria.DataBind();
        }
        private void Buscar(string codigo)
        {
            BL_InformeAuditoria negocio = new BL_InformeAuditoria();
            IList<BE_InformeAuditoria> lista;
            if (codigo == null)
            {
                //Listar Todas
                lista = negocio.Listar(null, null);
            }
            else
            {
                lista = negocio.Listar("CODIGO_INFORME", codigo);
            }
            if (lista.Count == 0)
            {
                lista = null;
            }
            dgdInformeAuditoria.DataSource = lista;
            dgdInformeAuditoria.DataBind();

        }
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Buscar(null);
            }
        }

        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("~/ModuloCalidad/Mantenimientos/Informe_Auditoria/ActualizarInformeAuditoria.aspx");
            strBuilder.Append("?Registrar=R&Codigo=0000000000");
            Response.Redirect(strBuilder.ToString());
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            string codigo = ObtenerSolicitudSeleccionada();
            if (codigo == null)
            {
                //No Selecciono ningun registro
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Modificar Informe Auditoria", "jsSeleccionoSC();", true);
            }
            else
            {
                //Redirige a la interface actualizar
                StringBuilder strBuilder = new StringBuilder();
                strBuilder.Append("~/ModuloCalidad/Mantenimientos/Informe_Auditoria/ActualizarInformeAuditoria.aspx");
                strBuilder.Append("?Registrar=M&Codigo=" + codigo);
                Response.Redirect(strBuilder.ToString());
            }
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            string codigo = ObtenerSolicitudSeleccionada();
            if (codigo == null)
            {
                //Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('Hello');",true);
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Eliminar Solicitud Cambio", "jsSeleccionoSC();", true);
            }
            else
            {
                BL_InformeAuditoria negocio = new BL_InformeAuditoria();
                BE_InformeAuditoria entidad = new BE_InformeAuditoria();
                entidad.CODIGO_INFORME = codigo;
                int resultado = negocio.Eliminar(entidad);
                if (resultado == 0)
                {
                    Buscar(null);
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "Eliminar Solicitud Cambio", "jsEliminar1SC();", true);
                }
                else
                {
                    //Mensaje de Error
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "Eliminar Solicitud Cambio", "jsErrorEliminar1SC();", true);
                }
            }
        }

        protected void btnAprobar_Click(object sender, EventArgs e)
        {
            string codigo = ObtenerSolicitudSeleccionada();
            if (codigo == null)
            {
                //Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('Hello');",true);
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Aprobar Solicitud Cambio", "jsSeleccionoSC();", true);
            }
            else
            {
                BL_InformeAuditoria negocio = new BL_InformeAuditoria();
                BE_InformeAuditoria entidad = new BE_InformeAuditoria();
                entidad = negocio.ListarporId(codigo);
                if (entidad.FECHA_APROBACION == null)
                {
                    string codigoPlan = entidad.PLAN_AUDITORIA.CODIGO_PLAN;
                    entidad.PLAN_AUDITORIA = new BE_PlanAuditoria();
                    entidad.PLAN_AUDITORIA.CODIGO_PLAN = codigoPlan;
                    entidad.FECHA_APROBACION = DateTime.Now.ToString("yyyy-MM-dd");
                    entidad.FECHA_INFORME = DateTime.Parse(entidad.FECHA_INFORME).ToString("yyyy-MM-dd");
                    int resultado = negocio.Modificar(entidad);
                    if (resultado == 0)
                    {
                        Buscar(null);
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "Aprobar Solicitud Cambio", "jsAprobar1SC();", true);
                    }
                    else
                    {
                        //Mensaje de Error
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "Aprobar Solicitud Cambio", "jsErrorAprobar1SC();", true);
                    }
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "Aprobar Solicitud Cambio", "jsAprobar2SC();", true);
                }
                
            }
        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("~/Index.aspx");
            Response.Redirect(strBuilder.ToString());
        }

        protected void btnBuscarInfome_Click(object sender, EventArgs e)
        {
            if (txtBuscarInfome.Text == string.Empty)
            {
                Buscar(null);
            }
            else
            {
                Buscar(txtBuscarInfome.Text);
            }
        }
    }
}